package com.bytezreo.interfacetest;

/**
 * 
 * @Description    接口的使用
 * @author Bytezero·zhenglei!        Email:420498246@qq.com
 * @version
 * @date 下午7:44:28
 * @  1.接口的使用满足多态性
 *    2.接口：实际上定义了一种规范
 *    3.面向接口编程
 *
 */
public class USBTest {
	public static void main(String[] args) {
		
		Computer com = new Computer();
		
		//1.创建了接口的非匿名实现类的非匿名对象
		Flash flash = new Flash();
		com.transferDate(flash);
		System.out.println("************************");
		Printer printer = new Printer();
		com.transferDate(printer);
		System.out.println("************************");
		
		//2.创建了接口的非匿名实现类的匿名对象
		com.transferDate(new Printer());
		System.out.println("************************");
		
		//3.创建了接口的匿名实现类的非匿名对象
		USB phone = new USB() {

			@Override
			public void start() {
				System.out.println("手机开始工作");
				
			}

			@Override
			public void stop() {
				System.out.println("手机结束工作");
				
			}
			
			
		};
		
		com.transferDate(phone);
		System.out.println("************************");
		
		//4.创建了接口的匿名实现类的匿名对象
		
		com.transferDate(new USB() {

			@Override
			public void start() {
				System.out.println("MP3开始工作");
				
			}

			@Override
			public void stop() {
				System.out.println("MP3接受工作");
				
			}
			
			
			
		});
		
		
		
	}

}

class Computer{
	public void transferDate(USB usb) {  //USB usb = new Flash();
		
		usb.start();
		
		System.out.println("具体传输数据的细节");
		
		usb.stop();		
	}
	
}

//接口
interface USB{
	//定义了长，宽最大最小的传输速度等
	
	
	void start();
	
	void stop();
	
}

//U盘
class Flash implements USB {

	@Override
	public void start() {
		System.out.println("U盘开始工作");
		
	}

	@Override
	public void stop() {
		System.out.println("U盘结束工作");
		
	}
	
	
	
}

class Printer implements USB{

	@Override
	public void start() {
		System.out.println("打印机开始后工作");
		
	}

	@Override
	public void stop() {
		System.out.println("打印机结束工作");
		
	}
	
	
}




